package com.copa.l231;

/**
 * @author copa
 * @createDate 2022-05-30 14:53
 * @function 整除2法
 */
public class Test2 {

    public boolean isPowerOfTwo(int n) {
        if (n == 1 || n == 2) {
            return true;
        }
        if (n < 1 || n % 2 != 0) {
            // 如果 n % 2 不为0，那百分百就不是2的幂
            return false;
        }
        while (n > 0 && n / 2 >= 2 && n % 2 == 0) {
            n = n / 2;
            if (n % 2 != 0) {
                // 若n % 2 不为0，那百分百就不是2的幂
                return false;
            }
        }
        // 遍历过后，确定是2的幂
        return true;
    }

    public static void main(String[] args) {
        System.out.println(new Test2().isPowerOfTwo(16));
    }
}
